package top.rainbowecho.gateway.security.authentication.social.qq.connect;

import org.apache.commons.lang3.StringUtils;
import org.springframework.social.connect.ApiAdapter;
import org.springframework.social.connect.ConnectionValues;
import org.springframework.social.connect.UserProfile;
import top.rainbowecho.gateway.security.authentication.social.qq.api.Qq;
import top.rainbowecho.gateway.security.authentication.social.qq.api.QqUserInfo;

/**
 * @author rainbow
 * @since 2019/12/15 18:53
 */
public class QqAdapter implements ApiAdapter<Qq> {
    @Override
    public boolean test(Qq api) {
        return true;
    }

    /**
     * 将API得到的数据适配为connection所需的数据
     *
     * @param api 第三方api
     * @param values 包含创建一个connection需要的数据项
     */
    @Override
    public void setConnectionValues(Qq api, ConnectionValues values) {
        QqUserInfo userInfo = api.getUserInfo();

        values.setDisplayName(userInfo.getNickname());
        values.setImageUrl(userInfo.getFigureurl_qq_1());
        values.setProfileUrl(StringUtils.EMPTY);
        values.setProviderUserId(userInfo.getOpenId());
    }

    @Override
    public UserProfile fetchUserProfile(Qq api) {
        return null;
    }

    @Override
    public void updateStatus(Qq api, String message) {
        // 微博等第三方使用
    }
}
